home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / sysext / init / bail.cpt / Bail ƒ / Bail Source / LoadBail.c < prev    next >
Text File  |  1992-06-18  |  657b  |  29 lines

  1. //Loader for Bail
  2. #define _InitApplication 0xAAFA
  3. void
  4. main ( void )
  5. {
  6.     long oldAddr ;
  7.     Handle code ;
  8.     unsigned short * ptr ;
  9.     long keys [ 4 ] ;
  10.  
  11.     code = GetResource ('Bail' , 128 );
  12.     GetKeys ( keys );                        //Don't load if option key is down
  13.     if ( code && ! ( keys [ 1 ] & 0x4 ) ) {
  14.  
  15.         DetachResource ( code ) ;
  16.         HLock ( code ) ;
  17.         oldAddr = NGetTrapAddress ( _InitApplication , ToolTrap ) ;
  18.         NSetTrapAddress ( ( long ) * code , _InitApplication , ToolTrap ) ;
  19.         ptr = ( unsigned short * ) * code ;
  20.         while ( * ptr != 0xeeee ) ptr ++ ;
  21.         * ( long * ) ptr = oldAddr ;
  22.         FlushDataCache ( ) ;
  23.         FlushInstructionCache ( ) ;
  24.  
  25.     } else {
  26.         SysBeep ( 20 ) ;
  27.     }
  28. }
  29.